﻿'''
题目描述
一群大雁往南飞，给定一个字符串记录地面上的游客听到的大雁叫声，请给出叫声最少由几只大雁发出。
具体的:
​ 1.大雁发出的完整叫声为”quack“，因为有多只大雁同一时间嘎嘎作响，所以字符串中可能会混合多个”quack”。
​ 2.大雁会依次完整发出”quack”，即字符串中’q’ ,‘u’, ‘a’, ‘c’, ‘k’ 这5个字母按顺序完整存在才能计数为一只大雁。
如果不完整或者没有按顺序则不予计数。
​ 3.如果字符串不是由’q’, ‘u’, ‘a’, ‘c’, ‘k’ 字符组合而成，或者没有找到一只大雁，请返回-1。
输入描述
一个字符串，包含大雁quack的叫声。1 <= 字符串长度 <= 1000，字符串中的字符只有’q’, ‘u’, ‘a’, ‘c’, ‘k’。
输出描述
大雁的数量
示例1
输入
quackquack
输出
1
示例2
输入：
qaauucqcaa
输出：
-1
示例3
输入：
quacqkuackquack
输出：
2
示例4
输入：
qququaauqccauqkkcauqqkcauuqkcaaukccakkck
输出：
5
示例5
输入：
quacqkuquacqkacuqkackuack
输出：
3
解题思路是，求出每个叫声quack的区间范围，即一次叫声的：[q索引位置，k索引位置]。
实现是：从左到右遍历叫声字符串，遇到q，则将其索引位置加入缓存中，遇到u，则判断u出现的次数是否超过了q出现的次数，若是则
忽略本次u，否则u次数++。遇到a，则判断a出现的次数是否超过了u出现的次数，若是则忽略本次a，否则a次数++遇到c，则判断c出现的
次数是否超过了a出现的次数，若是则忽略本次c，否则c次数++，遇到k，则判断c次数是否大于等于1，若否，则忽略本次k，否则出队第
一个q出现索引和本次k的索引，组合成个区间范围，然后u--a--,c--,表示取出了一次叫声。
按上面逻辑，我们可以剔除掉不完整或者不按顺序的叫声，并且获得每个合法叫声的区间范围接下来就是遍历每一个区间，和后面区间
比较，看是否有交集，若有，则记录交集数最终最大的交集数就是最多大雁数。
'''
#读取输入
qua_arr = input()
u,a,c = 0,0,0
q = []  #存储每只大雁在字符串中的起始坐标即q出现的位置
result = [] #存储完整的大雁在字符串中的坐标区间即quack中q,k的索引
for i in range(len(qua_arr)):
    char_c = qua_arr[i]
    if char_c == 'q':   #新的大雁
        q.append(i)
    elif char_c == 'u':
        if u < len(q):  #有大雁且还没发出u,下面同理
            u += 1
    elif char_c == 'a':
        if a < u:
            a += 1
    elif char_c == 'c':
        if c < a:
            c += 1
    elif char_c == 'k':
        if c > 0:   #已有大雁发出到c，弹出大雁的坐标，存储到结果数组
            result.append([q.pop(0),i])
            #u,a,c数量减1
            u -= 1
            a -= 1
            c -= 1
    else:   #不符合输入
        print(-1)
        exit()
#判断结果的坐标区间最少有多少只大雁，即多少区间重叠
if len(result) == 0:
    print(-1)
    exit()
#最少一个大雁
count = 1
for i in range(len(result)):
    current_count = 1   #对于特定i,计算当前的大雁数
    for j in range(i + 1,len(result)):
        if result[j][0] <= result[i][1]:
            current_count += 1
    count = max(count,current_count)
print(count)

